\chapter{Úvod}
{\it \quotation{Ve srovnání se schopností rozumně si rozvrhnout práci
	na jeden den je všechno ostatní dětskou hrou}} \hfill{\bf \from[goethe]}
%\hfill{\bf \rightaligned{\from[goethe]}}

%{\it \quotation{The key is not to prioritize what's on your schedule, but to
%	schedule your priorities.}}\crlf
%       	\rightaligned{ \from[Stephen-Covey]}\crlf





\crlf

Výrok německého myslitele vyzdvihuje důležitost rozvrhování a to
nejen jako problém akademický, ale také problém praktický a hlavně
problém každého myslícího jedince. S~rozvrhováním se v~běžném
životě setkáme opravdu na každém kroku. Člověk si u~jednoduchých
problému ani neuvědomuje, že o~nich nějakým způsobem přemýšlí (takových
		řeší denně desítky). Ale při vyšším počtu problémů,
	které má~rozvrhnout,  už musí opravdu zapřemýšlet nad svým
	rozvrhem a vyladit ho do~podoby, která se mu bude líbit
	(odpovídá jeho hodnotící funkci). Přibudou-li ještě precedenční
	vazby mezi jednotlivými úkoly, pak složitost problému prudce
	stoupá a~najít optimální řešení je značně komplikované. Kde končí schopnosti člověka, nastupuje výpočetní síla se speciálním programem pro řešení rozvrhovacích problémů.

Pro řešení výše zmíněných a mnohých dalších rozvrhovacích problémů se
nyní na Katedře řídící techniky vyvíjí TORSCHE Scheduling Toolbox v~Matlabu.  Jednou
z~chystaných funkčností je řešení tzv. {\it shopů}
(skládá se z~několika úloh s~podmínkou na
 vykonávající osobu nebo stroj a tyto úlohy \quotation{bojují}
o~zařazení do~rozvrhu). A~právě návrh a implementace shopu je tématem
této práce. Teoretický úvod do rozvrhování a shopům s~přesnými pojmy
rozeberu v~kapitole~\in[uvod_rozvrhovani]. 


K~řešení výše zmíněných problémů se dá dojít různými cestami. Jednak
problém můžeme reprezentovat pomocí grafu (například přiřadit úlohám vrcholy, hrany pak budou vztahy mezi nimi)
a~pak řešit pomocí grafových algoritmů. Další velmi rozšířenou alternativou jsou genetické
algoritmy (GA). O~řešení shopů pomocí GA např. v~\cite[GA]. K~řešení se
můžeme dostat i pomocí fuzzy modelování (řešení problému Job-shop touto
		metodou je v~\cite[fuzzyModelling]). 
Používanou metodou je také lineární celočíselné programování (ILP
		\cite[ILP]). Z~názvu vyplývá, že se jím dají popsat
	pouze lineární podmínky. ILP však dokáže definovat i podmínky ve
	tvaru $a \oplus b$ a proto se dá využít i v~rozvrhování.
	Komplexnější podmínky se snáze vyjádří pomocí dalšího silného
	nástroje, kterým je programování
	s~omezujícími podmínkami (CP). CP dokáže pracovat s~podmínkami
libovolného tvaru. Právě tuto techniku jsme využívali v~této práci. O~základních rysech omezujících podmínek bude pojednáno v~kapitole \in[uvod_cp].

Druhá část práce (kapitoly \in[js_sol]-\in[ooa]) bude navazovat na
teoretické části jejich aplikací. 
Tedy návrhem modelu shopu (problému rozvrhování v~dílně) a implementací
algoritmu na jeho řešení.
	Dále návrhem objektu reprezentujícího Shop a objektů s~ním souvisejících pro TORSCHE Scheduling toolbox v~Matlabu.
Následovat budou výsledky a hodnocení algoritmu. 

